#ifndef VERTEX_H
#define VERTEX_H

#include <QString>
#include "gisgraphlib_global.h"

class Graph;
class VertexPrivate;

class GISGRAPHLIBSHARED_EXPORT Vertex
{
public:
	Vertex(const QString &name = QString());
	Vertex(const Vertex &other);
	~Vertex();
	bool isNull() const;
	QString name() const;
	int degree() const;
	bool operator==(const Vertex &other) const;
	Vertex &operator=(const Vertex &other);
	friend class Graph;
protected:
	void setDegree(int degree);
private:
	VertexPrivate *d;
};

uint qHash(const Vertex &v);

#endif // VERTEX_H
